This invention relates generally to high-speed processors of the type used for signal and image processing and, more particularly, to parallel processing systems employing multiple processor, some of which may be algorithmically specialized processors. Many important and complex computing system applications, such as signal and image processing, need very high levels of performance, i.e. speed of computation. Traditionally, such applications are decomposed into smaller problem areas, and algorithmically specialized processors (ASPs) are employed to provide the needed high performance. For example, ASPs might be provided for performing such functions as fast Fourier transformation (FFT), or for performing high-speed database searching. Each ASP is a highly optimized piece of computer hardware, capable of exceeding the performance of any general-purpose computer programmed to perform the same function. However, a processor system that includes one or more ASPs necessarily lacks the programming flexibility of a large general-purpose computer. Even when a processing task can be handled without ASPs, the system may be so complex that flexibility to make changes is still a very desirable goal.
In designing processing systems to handle complex applications like signal processing, there is a basic trade-off to be considered, between processing performance on the one hand, which can be provided by employing more ASPs, and processing flexibility on the other, which can be provided by increased use of programmable general-purpose machines. Basically, the design of such a processing system has been reduced to a choice between the implementation of various functions in hardware form or in software form. Once a function has been reduced to hardware form, in an ASP, it is no longer amenable to even the most simple changes without considerable further development effort. But if the same function is implemented in software form, the programming flexibility this provides is obtained at the expense of a significantly reduced level of performance.
It will be appreciated from this brief introduction that there is clearly a need for and alternative architecture that provides both high performance and programming flexibility in the design of powerful, algorithmically specialized processing systems. The present invention was conceived to satisfy this need.